//
//  SEGMenuListCacheManager.h
//  SEGUhomeStandard
//
//  Created by 乔杨 on 2019/5/27.
//  Copyright © 2019 刘山. All rights reserved.
//

#import <Foundation/Foundation.h>
@class SEGMenuListModel;
@class SEGNeighborRollViewModel;
@class SEGSquareViewModel;
@class SEGPgcListModel;
@class SEGAdvertismentModel;
#if __has_include(<Commom/SEGAdvlistManager.h>)
#import <Commom/SEGAdvlistManager.h>
#else
#import "SEGAdvlistManager.h"
#endif

@interface SEGMenuListCacheManager : NSObject

#pragma mark - 菜单缓存数据
/// 保存菜单数据到本地
/// @param data 菜单数据
/// @param action 跳转Action
+ (void)menuCache_saveMenuListData:(NSArray<SEGMenuListModel *> *)data action:(NSString *)action;

/// 获取本地菜单数据
/// @param action 跳转Action
+ (NSArray<SEGMenuListModel *> *)menuCache_getMenuListDataWithAction:(NSString *)action;

#pragma mark - 页面菜单缓存数据
/// 保存页面菜单数据到本地
/// @param data 页面菜单数据
/// @param action 跳转Action
+ (void)sany_menuCache_saveMenuListData:(NSArray<NSArray<SEGMenuListModel *> *> *)data action:(NSString *)action;

/// 获取本地页面菜单数据
/// @param action 跳转Action
+ (NSArray<NSArray<SEGMenuListModel *> *> *)sany_menuCache_getMenuListDataWithAction:(NSString *)action;

#pragma mark - 邻里头条缓存数据
/// 保存邻里头条数据到本地
/// @param data 邻里头条数据
+ (void)menuCache_saveNeighborTopLineWithData:(NSArray<SEGNeighborRollViewModel *> *)data;

/// 获取本地邻里头条数据
+ (NSArray<SEGNeighborRollViewModel *> *)menuCache_getNeighborTopLineData;

#pragma mark - 侧滑推荐位缓存数据
/// 保存侧滑推荐位数据到本地
/// @param data 侧滑推荐位数据
+ (void)menuCache_saveHotNewsWithData:(NSArray<SEGSquareViewModel *> *)data;
 
/// 获取本地侧滑推荐位数据
+ (NSArray<SEGSquareViewModel *> *)menuCache_getHotNewsData;

#pragma mark - PGC缓存数据
/// 保存PGC数据到本地
/// @param data PGC数据
+ (void)menuCache_savePGCWithData:(NSArray<SEGPgcListModel *> *)data;
 
/// 获取本地PGC数据
+ (NSArray<SEGPgcListModel *> *)menuCache_getPGCData;

#pragma mark - 广告缓存数据
/// 保存广告数据到本地
/// @param data 广告数据
/// @param adsType 广告类型
+ (void)menuCache_saveAdsData:(NSArray<SEGAdvertismentModel *> *)data adsType:(SEGAdvlistType)adsType;

/// 获取本地广告数据
/// @param adsType 广告类型
+ (NSArray<SEGAdvertismentModel *> *)menuCache_getAdsDataWithAdsType:(SEGAdvlistType)adsType;

#pragma mark - 常用菜单缓存数据
/// 保存本地所有常用菜单数据
/// @param data 常用菜单数据
+ (void)menuCache_saveAllCommonMenuListWithData:(NSArray<SEGMenuListModel *> *)data;

/// 获取本地所有常用菜单数据
+ (NSArray<SEGMenuListModel *> *)menuCache_getAllCommonMenuListData;

/// 保存本地常用菜单数据
/// @param data 常用菜单数据
+ (void)menuCache_saveCommonMenuWithData:(SEGMenuListModel *)data;
 
/// 获取本地常用菜单数据
+ (SEGMenuListModel *)menuCache_getCommonMenuData;

/// 获取本地常用菜单数据
/// @param maxCount 最多个数
/// @param more 是否包含更多按钮
+ (SEGMenuListModel *)menuCache_getCommonMenuDataWithMaxCount:(NSUInteger) maxCount more:(BOOL)more;
@end


